package com.ld.hpfs.service;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * 发票画面的Service接口
 * 
 * @author
 *
 */
public interface ApplyFormService {

	/**
	 * 发票一览取得
	 * @param params
	 * @return
	 */
	public ArrayList<HashMap<String,Object>> getApplyFormList(HashMap<String, Object> params);
	
	/**
	 * 发票删除
	 * 
	 * @return
	 */
	public int deleteApplyFormList(HashMap<String, Object> params);

	
	/**
	 * 发票中的下拉框信息取得
	 * 
	 * @return
	 */
	public HashMap<String, ArrayList<HashMap<String, Object>>> getTaxCommonData();

	/**
	 * 申请发票取得
	 * 
	 * @return
	 */
	public HashMap<String, Object> getApplyForm(HashMap<String, Object> params);

	/**
	 * 申请发票上传附件插入
	 * 
	 * @param params
	 * @return 影响件数。
	 */
	public int insertApplyFormAttacheFile(HashMap<String, Object> params);

	/**
	 * 申请发票上传附件更新
	 * 
	 * @param params
	 * @return 影响件数。
	 */
	public int updateApplyFormAttacheFile(HashMap<String, Object> params);
	
	/**
	 * 申请发票上传附件删除
	 * 
	 * @param params
	 * @return 影响件数。
	 */
	public int deleteApplyFormAttacheFile(HashMap<String, Object> params);
	
	/**
	 * 发票取得
	 * 
	 * @return
	 */
	public ArrayList<HashMap<String,Object>> getApplyFormInvoiceList(HashMap<String, Object> params);

	/**
	 * 营业税发票取得
	 * 
	 * @return
	 */
	public ArrayList<HashMap<String,Object>> getApplyFormInvoiceTaxList(HashMap<String, Object> params);
	
	/**
	 * 发票保存<br>
	 * 如果是插入返回插入的表单Id，如果是更新则返回更新条数
	 * @return
	 */
	public int saveApplyForm(HashMap<String, Object> params);

	/**
	 * 发票表单提交
	 * 
	 * @return
	 */
	public int rollBackApplyForm(HashMap<String, Object> params);


	/**
	 * 客户信息一览
	 * @param param
	 * @return
	 */
	public ArrayList<HashMap<String,Object>> getMdataCustomerList(HashMap<String,Object> params);

	/**
	 * 客户信息详细
	 * @param param
	 * @return
	 */
	public HashMap<String,Object> getMdataCustomerDetail(HashMap<String,Object> params);
	
	
	/**
	 * 收件人信息一览(联系方式)
	 * @param param
	 * @return
	 */
	public ArrayList<HashMap<String,Object>> getMdataCustomerAddrList(HashMap<String,Object> params);

	/**
	 * 收件人信息详细(联系方式)
	 * @param param
	 * @return
	 */
	public HashMap<String,Object> getMdataCustomerAddrDetail(HashMap<String,Object> params);

	/**
	 *  取得当前表单提交状态
	 * @param param
	 * @return
	 */
	public ArrayList<HashMap<String, Object>> getSubmitStatus(HashMap<String, Object> param);

	public ArrayList<HashMap<String, Object>> getApplyFormColumns(
			HashMap<String, Object> params);

	// 获取表单提价状态
	public ArrayList<HashMap<String, Object>> getSubFlag(
			HashMap<String, Object> params);

	// 获取表单一览表单状态下拉数据
	public ArrayList<HashMap<String, Object>> getFormListFormStatus(
			HashMap<String, Object> params);

	// 获取表单一览客户名称下拉数据
	public ArrayList<HashMap<String, Object>> getFormListCustName(
			HashMap<String, Object> params);

	// 获取表单一览表单号下拉数据
	public ArrayList<HashMap<String, Object>> getFormListFormNo(
			HashMap<String, Object> params);
	
}
